package apiooday03;

public class 集合总结 {
    /**
     * Collection顶级接口
     * add（）添加元素，返回值为boolean
     * size（）长度
     * isEmpty（）判断集合是否为空，返回值Boolean
     * clear()清空集合
     * contains（）判断集合包含的元素，返回值Boolean
     * containsAll()判断集合包含其他集合元素
     * remove（）删除集合元素
     * addAll（）将集合添加到集合中，返回值为boolean
     * retainAll（）取交集，获取两者共有的
     * removeAll（）删交集，删除两者共有的
     *
     * list.set（下标数，需要替换的内容（新内容））方法。返回值是一个被替换掉的数
     * list.add(下标数，插入内容)方法，返回值为空
     * list.remove(下标数)，返回一个被删除的值
     * subList(开始下标，结束下标含头不含尾)，截取之后改变子集合元素会改变原来的集合，
     * 如果原来的集合长度发生变化，子集合不能进行任何操作（包括查看），要重新获取子集合
     * // Collections.reverse(list1);//反转输出
     *   Collections.sort(list);//升序
     *   Collections.shuffle(list)//打乱
     *
     * 集合遍历，使用iterator迭代器
      hasNext问。Next取。remove删（不一定要删除）
     */

    /**
     * 泛型：称为参数化类型，决定是一个什么类型的集合
     *  <>括号里指的是泛型（参数化类型），规定了集合的泛型（数据）类型
     *         Collection<String> cc =new ArrayList<>();
     *         cc.add("www");
     *
     *     //泛型的好处
     *     //1.约束类型
     *     //2.E 集合元素  T type 类
     *     //3.编程时可以忽略变量类型  重载？？？更灵活
     *     //检测任意类型的集合是否包含指定元素的泛型方法：
     *      public static <E> boolean coj(Collection<E> c,Object obj){
     *         for (E element : c){
     *             if (element.equals(obj)){
     *                 return true;
     *             }
     *         }return false;
     *     };
     */

    /**
     * 将集合转为数组：
     *   String[] arr =c.toArray(new String[1]);
     *
     *   将数组转为集合：
     *   List list =Arrays.asList(arr);
     *    //ailist方法可以将数组转换为list集合，并且无法进行增删操作，但是可以使用set
     *   // Collections.addAll（集合，数组）的方法也可以将数组转为集合，但是可以进行增删操作
     *
     */
}
